From 1dd7ea81f698e54a58b61ba75d60891d69a14710 Mon Sep 17 00:00:00 2001 From: robertl Date: Mon, 24 Oct 2005 16:45:04 +0000 Subject: [PATCH] Add 'find by name' for tracks/routes. --- gpsbabel/defs.h | 3 +++ gpsbabel/route.c | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/gpsbabel/defs.h b/gpsbabel/defs.h index d5271385b..05b663966 100644 --- a/gpsbabel/defs.h +++ b/gpsbabel/defs.h @@ -377,11 +377,14 @@ void route_reverse(const route_head *rte_hd); waypoint * route_find_waypt_by_name(route_head *rh, const char *name); void track_add_head(route_head *rte); void track_del_head(route_head *rte); +void route_disp(const route_head *rte, waypt_cb); void route_disp_all(route_hdr, route_trl, waypt_cb); void track_disp_all(route_hdr, route_trl, waypt_cb); void route_free (route_head *); void route_flush( queue *); void route_flush_all(void); +route_head * route_find_route_by_name(const char *name); +route_head * route_find_track_by_name(const char *name); unsigned int route_waypt_count(void); unsigned int route_count(void); unsigned int track_count(void); diff --git a/gpsbabel/route.c b/gpsbabel/route.c index 191ec13d5..121c1c1e0 100644 --- a/gpsbabel/route.c +++ b/gpsbabel/route.c @@ -94,6 +94,35 @@ track_del_head(route_head *rte) trk_head_ct--; } +static +route_head * +common_route_by_name(queue *routes, const char *name) +{ + queue *elem, *tmp; + route_head *rte; + + QUEUE_FOR_EACH(routes, elem, tmp) { + rte = (route_head *) elem; + if (0 == strcmp(rte->rte_name, name)) { + return rte; + } + } + + return NULL; +} + +route_head * +route_find_route_by_name(const char *name) +{ + return common_route_by_name(&my_route_head, name); +} + +route_head * +route_find_track_by_name(const char *name) +{ + return common_route_by_name(&my_track_head, name); +} + void route_add_wpt(route_head *rte, waypoint *wpt) { @@ -216,6 +245,9 @@ route_flush_all() { route_flush(&my_route_head); route_flush(&my_track_head); + rte_head_ct = 0; + trk_head_ct = 0; + rte_waypts = 0; } void -- 2.30.2